import 'package:shared_preferences/shared_preferences.dart';

class TokenManager {
  String? _token; // 可空的私有token字符串
  final _key = 'enjoy_token'; // 存储键名常量

  static TokenManager? _instance; // 静态单例实例
  TokenManager._internal(); // 私有构造方法
  factory TokenManager() {
    _instance ??= TokenManager._internal(); // 实例不存在时创建
    return _instance!; // 返回非空实例
  }

  //初始化
  Future<void> init() async {
    final prefs = await SharedPreferences.getInstance();
    _token = prefs.getString(_key); // 从本地加载token
  }

  Future<void> saveToken(String token) async {
    _token = token; // 更新内存token
    final prefs = await SharedPreferences.getInstance();
    await prefs.setString(_key, token); // 持久化存储
  }

  String? getToken() {
    return _token; // 获取当前token
  }

  Future<void> removeToken() async {
    _token = null; // 清空内存token
    final prefs = await SharedPreferences.getInstance();
    await prefs.remove(_key); // 删除本地存储
  }
}
